home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / Palettes / OOPSPalette / OOPSTimerInspector.m < prev    next >
Text File  |  1995-06-12  |  3KB  |  121 lines

  1. #import "OOPSTimerInspector.h"
  2. #import <appkit/appkit.h>
  3. #import "OOPSTimer.h"
  4.  
  5. @implementation OOPSTimerInspector
  6.  
  7. - init
  8. {
  9.     char buf[MAXPATHLEN + 1];
  10.     id bundle;
  11.     
  12.     [super init];
  13.     
  14.     bundle = [NXBundle bundleForClass:[OOPSTimer class]];
  15.     [bundle getPath:buf forResource:"OOPSTimerInspector" ofType:"nib"];
  16.     [NXApp loadNibFile:buf owner:self withNames:NO fromZone:[self zone]];
  17.     return self;
  18. }
  19.  
  20. - (BOOL)wantsButtons 
  21. {
  22.     return NO; 
  23. }
  24.  
  25. - updatePriorityField:sender
  26. {
  27.     int aValue;
  28.  
  29.     if ((sender != priorityField) && (sender != priorityMatrix)) return nil;
  30.     [priorityField setBackgroundGray:0.6666];
  31.     [priorityField  setEditable:NO];
  32.     switch ([[sender selectedCell]tag]) {
  33.         case 0:
  34.             [priorityField setIntValue:1];
  35.             break;
  36.         case 1:
  37.             [priorityField setIntValue:5];
  38.             break;
  39.         case 2:
  40.             [priorityField setIntValue:10];
  41.             break;
  42.         case 3:
  43.             [priorityField setBackgroundGray:1.0];
  44.             [priorityField setEditable:YES];
  45.             break;
  46.         case 10:
  47.             aValue = [priorityField intValue];
  48.             if (aValue < 2) {
  49.                 [priorityMatrix setState:1 at:0 :0];
  50.                 [priorityField setIntValue:1];
  51.             } else if (aValue == 5) {
  52.                 [priorityMatrix setState:1 at:1 :0];
  53.             } else if (aValue == 10) {
  54.                 [priorityMatrix setState:1 at:2 :0];
  55.             } else if (aValue < 31) {
  56.                 [priorityMatrix setState:1 at:3 :0];
  57.                 [priorityField setBackgroundGray:1.0];
  58.                 [priorityField setEditable:YES];
  59.             } else {
  60.                 [priorityMatrix setState:1 at:0 :0];
  61.                 [priorityField setIntValue:1];
  62.             }
  63.             break;
  64.     }
  65.     return self;
  66. }
  67.  
  68. - updateRepeatField:sender;
  69. {
  70.     if ((sender != repeatNrField) && (sender != repeatNrSlider)) return nil;
  71.     if ([sender tag]==0) {
  72.         [repeatNrSlider setIntValue:[sender intValue]];
  73.     } else {
  74.         [repeatNrField setIntValue:[sender intValue]];
  75.     }
  76.     if ([repeatNrField intValue] == 0 ) {
  77.         [repeatNrField setStringValue:"Forever"];
  78.     }
  79.     return self;
  80. }
  81.  
  82. - updateIntervalField:sender;
  83. {
  84.     if ((sender != intervalField) && (sender != intervalSlider)) return nil;
  85.     if ([sender tag]==0) {
  86.         [intervalSlider setFloatValue:[sender floatValue]];
  87.     } else {
  88.         [intervalField setIntValue:[sender intValue]];
  89.     }
  90.     return self;
  91. }
  92.  
  93. - revert:sender
  94. {
  95.     [repeatNrField setIntValue:[object numberOfRepeatsLeft]];
  96.     [self updateRepeatField:repeatNrField];
  97.     [intervalField setFloatValue:[object repeatTimeInterval]];
  98.     [self updateIntervalField:intervalField];
  99.     [priorityField setIntValue:[object priority]];
  100.     [self updatePriorityField:priorityField];
  101.     [tagField setIntValue:[object tag]];
  102.     [autoStartSwitch setState:[object autoStart]];
  103.     return [super revert:sender];
  104. }
  105.  
  106. - ok:sender
  107. {
  108.     [self updateRepeatField:sender];
  109.     [object setNumberOfRepeats:[repeatNrField intValue]];
  110.     [self updateIntervalField:sender];
  111.     [object setRepeatTimeInterval:[intervalField floatValue]];
  112.     [self updatePriorityField:sender];
  113.     [object setPriority:[priorityField intValue]];
  114.     [object setTag:[tagField intValue]];
  115.     [object setAutoStart:[autoStartSwitch state]];
  116.     return [super ok:sender];
  117. }
  118.  
  119.  
  120. @end
  121.